﻿namespace ImageDupFinder.PluginCore
{
    /// <summary>
    /// Plugin interface
    /// </summary>
    public interface IPlugin : IFeatureCollection
    {
        /// <summary>
        /// Gets plugin description.
        /// </summary>
        string Description { get; }

        /// <summary>
        /// Gets or sets a value indicating whether plugin is enabled.
        /// </summary>
        bool Enabled { get; set; }

        /// <summary>
        /// Gets a value indicating whether plugin uses options dialog.
        /// </summary>
        bool HasOptions { get; }

        /// <summary>
        /// Gets or sets Plugin host.
        /// </summary>
        IPluginHost Host { get; set; }

        /// <summary>
        /// Gets Plugin name.
        /// </summary>
        string Name { get; }

        /// <summary>
        /// Show this plugin options dialog.
        /// </summary>
        void ShowOptionsDialog();
    }
}
